Software developers often desire to “trace” the execution of their code. Tracing involves keeping a record of the specific sequence of instructions actually executed by software during its runtime. By logging the sequence of instructions, developers can study the instruction sequence to, e.g., identify flaws in the structure and/or flow of the code.
Tracing is typically supported by the underlying processor hardware which contains special logic circuitry to identify instructions as they execute and store them (or respective identifiers of them) in system memory in the order that they execute. For simplicity the remainder of the document may refer to the content of the tracing data as “tracing data”, “tracing information”, and the like. The reader will understand that tracing data corresponds to actual copies of instructions, portions thereof or some other identifier of the individual instructions or sequence thereof.